import dbConnect from 'configs/dbConnect' import withSession from 'hocs/withSession' import NoteList from 'models/NoteList' import Note from 'models/Note' export default withSession(async (req, res) => { const {id: _id} = req.query await dbConnect() switch (req.method) { case 'GET': try { const user = req.session.get('user') if (!user || !user?.isVerified || !_id ) { throw new Error('Something went wrong') } const note = await Note.getNote(_id) if (!note) { throw new Error('Something went wrong') } res.status(200).json(note) } catch (error) { console.log(error) res.status(400).json({error: true}) } break case 'DELETE': try { const user = req.session.get('user') if (!user || !user?.isVerified || !_id) { throw new Error('Something went wrong') } const noteId = await NoteList.getNoteId(user.noteList, _id) if ( !noteId) throw new Error('Something went wrong') await Note.findByIdAndDelete(noteId) const {notes} = await NoteList.removeNote(user.noteList, _id) res.status(200).json(notes) } catch (error) { console.log(error) res.status(400).json([]) } break case 'PUT': try { const user = req.session.get('user') const {title, noteId, content} = req.body if (!user || !user?.isVerified || !_id || !content) { throw new Error('Something went wrong') } await Note.updateNote(noteId, content) const {notes} = await NoteList.updateList(user.noteList, noteId, title) res.status(200).json(notes) } catch (error) { console.log(error) res.status(400).json([]) } break } })